package com.ruoyi.stock.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 库存信息对象 stock_inventory
 * 
 * @author ruoyi
 * @date 2025-06-17
 */
public class StockInventory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 库存ID */
    private Long inventoryId;

    /** 商品ID */
    @Excel(name = "商品ID")
    private Long productId;
    
    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 当前库存数量 */
    @Excel(name = "当前库存数量")
    private Long currentQuantity;

    /** 库存上限 */
    @Excel(name = "库存上限")
    private Long upperLimit;

    /** 库存下限 */
    @Excel(name = "库存下限")
    private Long lowerLimit;

    /** 仓库编码 */
    @Excel(name = "仓库编码")
    private String warehouseCode;

    /** 库位编码 */
    @Excel(name = "库位编码")
    private String locationCode;

    /** 状态（0正常 1锁定） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=锁定")
    private String status;

    /** 创建者 */
    @Excel(name = "创建者")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新者 */
    @Excel(name = "更新者")
    private String updatedBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    public void setInventoryId(Long inventoryId) 
    {
        this.inventoryId = inventoryId;
    }

    public Long getInventoryId() 
    {
        return inventoryId;
    }

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }
    
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public void setCurrentQuantity(Long currentQuantity) 
    {
        this.currentQuantity = currentQuantity;
    }

    public Long getCurrentQuantity() 
    {
        return currentQuantity;
    }

    public void setUpperLimit(Long upperLimit) 
    {
        this.upperLimit = upperLimit;
    }

    public Long getUpperLimit() 
    {
        return upperLimit;
    }

    public void setLowerLimit(Long lowerLimit) 
    {
        this.lowerLimit = lowerLimit;
    }

    public Long getLowerLimit() 
    {
        return lowerLimit;
    }

    public void setWarehouseCode(String warehouseCode) 
    {
        this.warehouseCode = warehouseCode;
    }

    public String getWarehouseCode() 
    {
        return warehouseCode;
    }

    public void setLocationCode(String locationCode) 
    {
        this.locationCode = locationCode;
    }

    public String getLocationCode() 
    {
        return locationCode;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }

    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("inventoryId", getInventoryId())
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("currentQuantity", getCurrentQuantity())
            .append("upperLimit", getUpperLimit())
            .append("lowerLimit", getLowerLimit())
            .append("warehouseCode", getWarehouseCode())
            .append("locationCode", getLocationCode())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createdBy", getCreatedBy())
            .append("createdTime", getCreatedTime())
            .append("updatedBy", getUpdatedBy())
            .append("updatedTime", getUpdatedTime())
            .toString();
    }
}
